#include <iostream>
#include <cstring>
namespace CERT_MEMCMP_FLOAT_MEMBER {
	namespace bad {
		struct S {
			int a;
			float f;
		};

		bool comparison(const struct S* S0, const struct S* S1) {
			if (!S0 && !S1)
				return true;
			else if (!S0 || !S1)
				return false;
			return 0 == memcmp(S0, S1, sizeof(struct S));
		}
	}
	

	namespace good {
		struct S {
			int a;
			float f;
		};

		bool comparison(const struct S* S0, const struct S* S1) {
			if (!S0 && !S1)
				return true;
			else if (!S0 || !S1)
				return false;
			return (S0->a == S1->a && S0->f == S1->f);
		}
	}

}